package com.hutao.manage.service;

import com.github.pagehelper.PageInfo;
import com.hutao.manage.model.AvgInHospDaysInfo;
import com.hutao.manage.model.BedIndexInfo;
import com.hutao.manage.model.CostFeeInfo;
import com.hutao.manage.model.DiagTop10DeptInfo;
import com.hutao.manage.model.DiagTop20OrderInfo;
import com.hutao.manage.model.Major20DiagInfo;
import com.hutao.manage.model.OpNumberInfo;
import com.hutao.manage.model.OperationTop20Info;
import com.hutao.manage.model.OutHospStatisIndexInfo;
import com.hutao.manage.model.OutNumDeathRateInfo;
import com.hutao.manage.model.OutPatientVisitInfo;
import com.hutao.manage.model.OutSatisContrastAnalysisInfo;
import com.hutao.manage.model.OutpatientSatisfactionInfo;
import com.hutao.manage.model.QcAcquiredInfo;
import com.hutao.manage.model.QcBackInfo;
import com.hutao.manage.pojo.PageParam;
import com.hutao.manage.pojo.StatisticalReportParam;

public interface MedicalService {
	
	/**
	 * 
	 * @param startDateStr
	 * 			开始时间
	 * @param endDateStr
	 * 			结束时间
	 * @param orgCode
	 * 			组织机构代码
	 * @param outWay
	 * 			离院方式(为空时查询疾病顺位，值为5时查询死亡原因顺位)
	 * @return
	 */
	DiagTop20OrderInfo getDiagOrderTop20(StatisticalReportParam statisticalReportParam,String orgCode,String outWay);

	DiagTop10DeptInfo getDiagOrderTop10ByDept(StatisticalReportParam statisticalReportParam, String orgCode);

	OperationTop20Info getOpsTop20Order(StatisticalReportParam statisticalReportParam, String orgCode);

	DiagTop10DeptInfo getOpsTop10DeptOrder(StatisticalReportParam statisticalReportParam, String orgCode);
	
	CostFeeInfo getCostFeeInfo(StatisticalReportParam statisticalReportParam,String orgCode);

	OpNumberInfo getOpNumberInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	OutHospStatisIndexInfo getOutHospStatisIndexInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	AvgInHospDaysInfo getAvgInHospDays(StatisticalReportParam statisticalReportParam, String orgCode);

	DiagTop20OrderInfo getDeathSequence(StatisticalReportParam statisticalReportParam, String orgCode, String outWay);

	OutPatientVisitInfo getOutpatientVisit(String orgCode, StatisticalReportParam statisticalReportParam);

	//BedIndexInfo getBedIndexInfo(String orgCode, String params);

	OutNumDeathRateInfo getOutNumAndDeathRate( StatisticalReportParam statisticalReportParam,String orgCode);

	void getmajorDiseaseOperation(String params, String orgCode);

	OutpatientSatisfactionInfo getOutpatientSatisfaction(StatisticalReportParam statisticalReportParam, String orgCode);

	OutSatisContrastAnalysisInfo getOutSatisContrastAnalysisInfo(StatisticalReportParam statisticalReportParam, String orgCode);
	
	void addParameterSetting(StatisticalReportParam statisticalReportParam);
	
	
	 PageInfo<StatisticalReportParam> getStatisticalReportParamPageInfo(PageParam pageParam);

	StatisticalReportParam getParameterSettingById(Integer id);

	BedIndexInfo getBedIndexInfo(String orgCode, StatisticalReportParam statisticalReportParam);

	QcBackInfo getQcBackInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	QcAcquiredInfo getQcAcquiredInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	Major20DiagInfo getMajor20DiagInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	Major20DiagInfo getMajor20OperationInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	Major20DiagInfo getMajorTumourNonOpInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	Major20DiagInfo getMajorTumourOpInfo(StatisticalReportParam statisticalReportParam, String orgCode);

	void deleteParamSettingById(Integer id);

}
